package R

// 通用code
const (
	Success Code = 200 //Success 通用成功
	Failure Code = 400 //Failure 通用失败
)
const (
	_                   Code = -1 * (iota + 1)
	ErrUnrecognized          //ErrUnrecognized 未知错误 -1
	MustSliceOrSlicePtr      //必须要是切片或切片指针 -2
	UserIsNotExists          //用户不存在 -3
	SignFailedToVerify       //签名校验不通过 -4
	UserIsException          //用户异常 -5
	BadUA                    // UA 异常
	UserIsNotMerchant        //用户不是商家
)

const (
	ErrDownloadError    Code = -1 * (iota + 1000) //ErrDownloadError 下载文件失败 -1000
	ErrUploadError                                //ErrUploadError 上传文件失败 -1001
	ErrFsBucketNotExist                           //ErrFsBucketNotExist ErrFsBucketNotExist -1002
	UpLoadingFile                                 //UpLoadingFile UpLoadingFile -1003
	ErrFsOptionWrong                              //ErrFsOptionWrong ErrFsOptionWrong -1004
	ErrExportFileFail                             //ErrExportFileFail ErrExportFileFail -1005
	FileMerging                                   //FileMerging 文件合并中 -1006
	FileConverting                                //FileConverting 文件转换中 -1007
	UploadLoadingToFs                             //UploadLoadingToFs 文件正在上传到FS服务器 -1008
	ErrConnectToFs                                //ErrConnectToFs 连接文件服务器失败 -1009
	CodeEmptyData                                 //CodeEmptyData 空数据 -1010
	ErrMimeType                                   //ErrMimeType 不支持的文件格式 -1011
	ErrFsServerFile                               //ErrFsServerFile 文件服务异常 -1012
	ErrMergeFile                                  //ErrMergeFile 文件合并失败 -1013
	ErrConvertFile                                //ErrConvertFile 文件转码失败 -1014
	ErrPlayTimeTooShort                           //ErrPlayTimeTooShort 上传的视频播放时间太短 -1015
	ErrUploadExistVideo                           //ErrUploadExistVideo  重复上传视频 -1016
	ForbidUploadVideo                             //ForbidUploadVideo 该用户已经禁止上传文件 -1017
	UpLoadFileComplete  Code = 2000               //UpLoadFileComplete UpLoadFileComplete 2000
	ResolutionNotEnough Code = 2001               //分辨率不足
)

const (
	ErrAccessForbid     Code = iota + 1000 //ErrAccessForbid 没有访问权限 1000
	ErrNamePwdIncorrect                    //ErrNamePwdIncorrect 用户名或密码错误 1001
	ErrAuthExpired                         //ErrAuthExpired 证书过期 1002
	ErrAuthInvalid                         //ErrAuthInvalid 无效签名 1003
	ErrUserBeBanned                        //ErrUserBeBanned 用户已经禁言 1004
	ErrCustomerBanned                      //ErrCustomerBanned 客服已休息 1005
	ErrVersionUpdate                       //ErrVersionUpdate 版本强制更新 1006
	ErrVersionRange                        //ErrVersionRange  版本更新范围错误 1007
	ErrVersionTooLow                       //ErrVersionTooLow 指定升级版本太低
	ErrVersionLoginSame                    //ErrVersionLoginSame 相同账号登录
)

const (
	ErrLoginExpired               Code = iota + 4000 //ErrLoginExpired 登陆过期 4000
	ErrParamError                                    //ErrParamError 参数参数错误 4001
	_                                                //此错误吗暂未使用 4002
	ErrReqForbidden                                  //ErrReqForbidden 请求被拒绝 4003
	ErrPathNotFount                                  //ErrPathNotFount 请求路径不存在 4004
	ErrMethodIncorrect                               //ErrMethodIncorrect 请求方法错误 4005
	ErrTimeout                                       //ErrTimeout 服务超时 4006
	ErrLoginTooFrequently                            //ErrLoginTooFrequently 4007
	ErrNetWorkBusy                                   //ErrNetWorkBusy 网络环境不好 4008
	ErrInvalidRequest                                //ErrInvalidRequest 无效请求 4009
	ErrInvalidRequestReplayAttack                    //ErrInvalidRequestReplayAttack 重放攻击 4010
	ErrInterServerError                              //ErrInterServerError 内部错误
	ErrUidPwd                                        //ErrInterServerError 内部错误
)

const (
	ErrServerUnavailable        Code = iota + 5000 //ErrServerUnavailable 服务不可用 5000
	ErrDbQueryError                                //ErrDbQueryError 数据库查询错误 5001
	ErrDbInsertError                               //ErrDbInsertError 数据库插入错误 5002
	ErrDbUpdateError                               //ErrDbUpdateError 数据库修改错误 5003
	ErrDbDeleteError                               //ErrDbDeleteError 数据库删除错误 5004
	ErrNoToken                                     //ErrNoToken  没有token 5005
	ErrCaptcha                                     //ErrCaptcha  5006
	ErrCaptchaExists                               //ErrCaptchaExists 5007
	ErrSmsSendFail                                 //短信发送失败 5008
	InvalidToken                                   //无效token 5009
	ErrDbTransError                                //ErrDbTransError 事务失败 5010
	ErrDbInputExist                                //ErrDbInputExist 数据库输入值已经存在 5011
	ErrLoginMobileNotExist                         //ErrLoginMobileNotExist 用手机登陆，手机号不存在 5012
	ErrMobileHasBind                               //ErrMobileHasBind 已经绑定了该手机号 5013
	ErrDeviceIdAndMobileNil                        //ErrDeviceIdAndMobileNil devId和手机号不存在 5014
	ErrUserNameTooLong                             //ErrUserNameTooLong 用户名称太长 5015
	ErrMobileHasBindByOther                        //ErrMobileHasBindByOther 该手机号已经被使用 5016
	ErrMobileInvalid                               //ErrMobileInvalid 手机号不合法 5017
	ErrTokenIsNotExist                             //ErrTokenIsNotExist token token不存在 5018
	ErrCaptchaInvalid                              //ErrCaptchaInvalid 验证码不正确 5019
	ErrWithDrawAccountHasBind                      //ErrWithDrawAccountHasBind 提现账号已经绑定 5020
	ErrQrInvalid                                   //ErrQrInvalid 无效的二维码 5021
	ErrBadDevID                                    //ErrBadDevID 错误的设备ID 5022 Since 3.6.0
	ErrDbInsertManyError                           //ErrDbInsertManyError 数据库批量插入错误 5023
	ErrInvalidEmail                                // 无效邮箱
	ErrNotSupportedCaptcha                         // 验证码发送方式不支持
	ErrEmailHasBinded                              // 邮箱已经绑定
	ErrEmailBindedByOther                          // 邮箱已被其他uid的用户使用
	ErrAccountHasBinded                            // 账号已经绑定
	ErrAccountBindedByOther                        // 账号已被他人使用
	ErrAccountHasIllegalContent                    // 账号有非法内容
	ErrInvalidAccount                              // 账号无效
	ErrDbTooMuchRecords                            // 单词查询数据量太大
	ErrDbCopyInsertError                           //ErrDbInsertError 数据COPY错误 5002
)

const (
	CommentErrSendFail        Code = iota + 7000 //评论发送失败 7000
	CommentErrGetDataFail                        //评论数据获取失败 7001
	CommentErrIncCountFailed                     //评论增加数量失败 7002
	CommentErrDecCountFailed                     //评论减少数量失败 7003
	CommentErrVideoIsInvalid                     //当前视频不可评论 7004
	CommentUserHasBanned                         //用户已经被禁言   7005
	CommentUserNotBind                           //用户还未绑定     7006
	CommentPublishTooFrequent                    //发言太频繁       7007
	CommentUserInfoErr                           //用户信息错误     7008
	CommentVideoInfoErr                          //用户信息错误     7009
	CommentNotVip                                //非vip用户     7010
	CommentCountOverLimit                        //评论超过限制 7011
	CanNotSendMsgToSelf                          //不能给自己发消息
)

const (
	InsufficientBalance      Code = iota + 8000 //InsufficientBalance 余额不足 8000
	RechargeFaile                               //充值第三方错误 8001
	InvalidBankCard                             //InvalidBankCard 8002
	UnkonwErr                                   //UnkonwErr 8003
	InvalidProduct                              //InvalidProduct 8004
	RepeatPurchase                              //RepeatPurchase 重复购买 8005
	PayBusy                                     //PayBusy 支付繁忙 8006
	BuyFailed                                   //BuyFailed 购买失败 8007
	RepeatSubmitOrder                           //RepeatSubmitOrder 订单重复提交
	CanNotTransfer                              //RepeatSubmitOrder 订单重复提交
	DifferentBankActName                        //与上次提现成功不一样的姓名
	GoldVideoCoupleNotExist                     //GoldVideoCoupleNotExist 金币视频抵用券不存在
	GoldVideoCoupleAmountErr                    //GoldVideoCoupleAmountErr 金币视频抵用券面值必须大于视频金额
	WithdrawBusy                                //提现操作繁忙，同一用户短时间内多次提交 8013
	WithDrawIllegalAmount                       //提现金额不满足要求 8014
	GetLikesBusy                                //获取“喜欢”列表过快 8015
	GetBuyVidBusy                               //获取已购列表过快
	RepeatTaskReceive                           //重复领取积分
	NotCompleted                                //未完成任务
	InsufficientPoint                           //积分不足
)

const (
	AdminIsNotExist       Code = iota + 9000 //AdminIsNotExist 9000
	AdminIDErr                               //AdminIDErr 9001
	AdminRefreshTokenErr                     //AdminRefreshTokenErr 9002
	AdminIsHasLockedErr                      //管理员被封禁 9003
	LiaoBaTopOverLimit                       //撩吧置顶超出10条，请先删除多余置顶帖子 9004
	ModuleConfLimitExceed                    //模块下专题数量超过限制 9005
)

const (
	DistrictActErr                       Code = iota + 21001 //DistrictActErr 21001
	DistrictRefreshTokenErr                                  //DistrictRefreshTokenErr 21002
	DistrictAgentNotBind                                     //DistrictAgentNotBind 21003
	UserNotDistrictAgent                                     //UserNotDistrictAgent 21004
	DistrictActIsNotExist                                    //DistrictActIsNotExist 21005
	AgentNotInvitedUID                                       //AgentNotInvitedUID 21006
	DiscNameExists                                           //DiscNameExists 21007
	DistrictInsufficientBalance                              //DistrictInsufficientBalance 21008
	DistrictWithdrawAmountTooLittleError                     //DistrictWithdrawAmountTooLittleError 21009
	DistrictWithdrawAmountTooMuchError                       //DistrictWithdrawAmountTooMuchError 21010
	DistrictWithdrawMethodInvalidError                       //DistrictWithdrawMethodInvalidError 21011
	DistrictWithdrawFailed                                   //DistrictWithdrawFailed 21012
	DistrictWithdrawTooFast                                  //DistrictWithdrawTooFast 21013
	DistrictPasswordError                                    //DistrictPasswordError 21014
	DistrictMobileHasBinded                                  //DistrictMobileHasBinded 21005
	DistrictNotHaveMobile                                    //DistrictNotHaveMobile 21006
	DistrictTimeOutOfRange7                                  //DistrictTimeOutOfRange7 21007
	DistrictLessThanDividendRatio                            //DistrictLessThanDividendRatio 21007
	DistrictTypeIsNotExist                                   //DistrictTypeIsNotExist 21008
	DistrictDedTypeIsNotExist                                //DistrictDedTypeIsNotExist 21009
	DistrictConDedSetIsNotComplete                           //DistrictConDedSetIsNotComplete 21010
	DistrictNUDedSetIsNotComplete                            //DistrictNUDedSetIsNotComplete 21010
	DistrictCodeTooLong                                      //DistrictCodeTooLong 21010
	DiscCodeExists                                           //DiscCodeExists 21011
	DiscOptDividendRatioIsNotExist                           //DiscOptDividendRatioIsNotExist 21012
	DiscDividendRatioIsNotExist                              //DiscOptDividendRatioIsNotExist 21012
	DiscAuthInUsing                                          //AuthInUsing 21013
	DiscAuthIsNotExist                                       //AuthIsNotExist 21014
	DistrictDividendBreakdown                                //DistrictDividendBreakdown 21015
	DistrictRoleIsNotExist                                   //DistrictRoleIsNotExist 21016
	DistrictCPACantAddCPS                                    //DistrictCPACantAddCPS 21017
	DistrictAddAuthFailed                                    //DistrictAddAuthFailed 21017
	DistrictAddChildGT5                                      //DistrictAddChildGT5 21018
	DistrictAddAuthGT10                                      //DistrictAddAuthGT10 21019
	DistrictAddRoleGT20                                      //DistrictAddRoleGT20 21020
	DistrictInviteLinkGT5                                    //DistrictInviteLinkGT5 21021
	DiscHasExists                                            //DiscHasExists 21022
	DiscNoExists                                             //DiscNoExists 21023
	DiscUserUnitError                                        //DiscUserUnitError 21024
	DistrictLock                                             //DistrictLock 21025
	DiscDisTrans                                             //DiscDisTrans 21026
	DiscParentInvalid                                        //DiscParentInvalid 21027
	DistrictInviteLinkGT50                                   //DistrictInviteLinkGT5 21028
	DiscIsUsed                                               //DiscIsUsed 21029
	DiscAndSeqeNoExists                                      //DiscAndSeqeNoExists 21030
	DiscAuthNoExists                                         //DiscAuthNoExists 21031

	OrderDoesNotExist Code = iota + 21001 + 500 //OrderDoesNotExist 21501
	OrderHasReceipted                           //OrderHasReceipted 21502
)

const (
	_                  = (iota * 100) + 9000
	AdminIsExisted     //AdminIsExisted 管理员存在 9100
	AuthInUsing        //权限正在使用 9200
	AuthIsNotExist     //权限不存在 9300
	LoginMobileNotBind //渠道后台账号没有绑定电话号码 9400
	LoginMobileBindErr //渠道后台账号绑定电话号码失败 9500
)

const (
	LikeHasAlreadyThumbs  Code = iota + 10000 //10000
	LikeHasNotThumbs                          //LikeHasNotThumbs 10001
	LikeErrGetDataFailed                      //LikeErrGetDataFailed  10002
	LikeErrThumbsFailed                       //LikeErrThumbsFailed 10003
	LikeErrCancelFailed                       //LikeErrCancelFailed 10004
	LikeErrIncCountFailed                     //LikeErrIncCountFailed 10005
	LikeErrDecCountFailed                     //LikeErrDecCountFailed 10006
	LikeErrVideoIsInvalid                     //LikeErrVideoIsInvalid 10007
)

const (
	CollectHasCollected     Code = iota + 12000 //12000
	CollectHasNotCollected                      //12001
	CollectErrGetDataFailed                     //12002
	CollectErrCollectFailed                     //12003
	CollectErrCancelFailed                      //12004
)
const (
	ErrGetTagDataFailed Code = (iota * 1000) + 13000
	GoogleAuthFail           // GoogleAuthFail 14000
	Timeout                  // Timeout 超时时间 15000
)
const (
	TagAddTagNameInvalidErr Code = iota + 16000 //TagAddTagNameInvalidErr tag名称无效 16000
	TagAddTagNameEmptyErr                       //TagAddTagNameEmptyErr tag名称不能为空 16001
	TagAddTagNameExistedErr                     //TagAddTagNameExistedErr tag名称已存在 16002
	TagAddTagDescInvalidErr                     //TagAddTagDescInvalidErr tag描述无效 16003

)

const (
	//proxy
	SelfPromotionCode    Code = iota + 17000 //SelfPromotionCode 17000
	InvalidPromotionCode                     //17001
	PromoteLoop                              //17002
	NotInvitedUsers                          //17003
	PromoteHasBind                           //17004 PromoteHasBind
)

const (
	//daichong error
	ErrTakeChatCode                            Code = iota + 18000 //发起代充聊天失败 18000
	ErrGetOrderInfoCode                                            //获取代理充值订单信息失败 18001
	ErrAppIDNotExist                                               //代充AppID 不存在 18002
	ErrMerchantIsNotExist                                          //此商人不存在 18003
	ErrMerchantBalanceIsNotEnough                                  //商人余额不足 18004
	ErrMerchantBalanceHasLock                                      //商人被禁止登陆 18005
	ErrMerchantSeekScoreFail                                       //商人追分失败 18006
	ErrMerchantSeekScoreFailDueNotEnoughAmount                     //商人追分失败 18007
)

// 接口性能
const (
	// Visit limit
	VisitLimit Code = 19000 // 访问被限制
)

const (
	ActClose                       Code = iota + 20000 //活动关闭 20000
	ActUserDataTypeError                               //活动的用户数据类型错误 20001
	ActInvitReceiveCoinsLessThan10                     //推广活动领取的金币小于10 20002
	ActLotteryNoTimes                                  //轮盘活动次数不够了
	ActCheckInExist                                    //轮盘活动次数不够了
)

// 后台渠道
const (
	ChannelAgentExisted Code = iota + 21000 //渠道账号已经存在 20000
)

const (
	ExchangeCodeProduceCodeFailed    Code = iota + 22000 // 22000 兑换码生成失败
	ExchangeCodeExchangeFailed                           // 22001 兑换失败
	ExchangeCodeInvalidCode                              // 22002 无效兑换码
	ExchangeCodeIsNotEffective                           // 22003 未到兑换时间
	ExchangeCodeIsExpired                                // 22004 已过期
	ExchangeCodeIsUsed                                   // 22005 兑换码已经使用
	ExchangeCodeInvalidApp                               // 22006 无效的app类型
	ExchangeCodeInvalidAuthority                         // 22007 无效的权限类型
	ExchangeCodeNullChannelForbidden                     // 22008 渠道不能为空
	ExchangeCodeOperateDenied                            // 22009 权限不够，操作被拒绝
	ExchangeCodeInvalidBatchNumber                       // 22010 无效的批次号
	ExchangeCodeForbidUpdate                             // 22011 该兑换码已使用或者已过期，不能修改
	ExchangeCodeRepeatExchange                           // 22012 一兑换过该批次的兑换码
	ExchangeCodeInvalid                                  // 22006 无效的兑换类型

)

// 机器人配置与内容
const (
	RobotTypeInvalid           Code = iota + 23000 // 23000 无效的机器人类型
	RobotTypeExisted                               // 23001 该类机器人已经存在
	RobotContentDelParamIsNull                     // 23002 删除机器人聊天内容的参数不能为空
	RobotContentIsNull                             // 23003 增加的内容不能为空
	RobotContentDelFailed                          // 23004 删除内容失败，没有改内容
	RobotInvalidConf                               // 23005 机器人配置的最大值无效
)

// 机器人配置与内容
const (
	NotSystemAds     Code = iota + 25000 // 25000 不是系统广告
	ADSNotExist                          // 25001 广告不存在
	ADReviewNotExist                     // 25002 广告审核不存在
	URLInvalid                           // 25003 URL非法
	HostNameInvalid                      // 25004 域名非法
	ErrADScant                           // 25005 广告大小或尺寸错误
)

const (
	RecmdTagIsExisted Code = iota + 26000 //26000 推荐标签已存在
	TagNotExist                           //26001 标签不存在
)

// 新版增加错误码
const (
	NoWatchingCoupon   Code    = iota + 27000 //27000 没有观影券
	PiggyBankNotEnough                        //27001 存钱罐余额不够
	NoVipPrivilege     = 27002                //27002 没有vip权限
	PayCoinsLimit200                          //27006 观影券免费观看需200金币以下
)

// 楼凤错误码
const (
	RepeatUpload Code = iota + 28000 //未审核，重复提交验证报告
	GetLockTimeout
	OverTargetCoin
	RepeatFeedback
	LouFengNotExists //楼凤不存在
)

// 签到错误码
const (
	PrizeIsExistError Code = iota + 29000
	SignConfigIsExistError
	ActivityDateError // 活动开始时间或者结束时间配置不正确
	CheckInExist
)

const (
	NudeChatRepeatFeedbackErr Code = iota + 30000 // 裸聊信息重复举报
	NotBuyBanFeedbackErr                          // 未购买禁止举报
)

const (
	LimitOpMsg Code = iota + 31000
)

const (
	ErrPwdNullForbid         Code = iota + 40000 //ErrAccessForbid 密码不能为空
	ErrPwdNullDBForbid                           //ErrPwdNullDBForbid 密码不能为空
	ErrPwdErrorForbid                            //ErrPwdErrorForbid 口令密码错误
	ErrUserExistErrorForbid                      //ErrUserExistErrorForbid 用户不存在
	ErrUserExistErrorCurrent                     //ErrUserExistErrorCurrent 用户不存在
)
